
package com.liuyanzhao.blog.service;

import com.liuyanzhao.blog.entity.User;
import com.liuyanzhao.blog.entity.custom.UserCustom;

import java.util.List;

/**
 * 
 * @author Baokai Wang
 * 对用户列表进行的操作
 * @CrateTime: 2019年6月22日
 */
public interface UserService {
	/**
	 * 
	 * 获取用户列表
	 * @return List<UserCustom>  返回所有符合条件的子类
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月22日 下午9:58:36
	 */
	public List<UserCustom> listUser() throws Exception;
	
	/**
	 * 
	 * 根据id查询用户信息
	 * @param id
	 * @return UserCustom
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月22日 下午10:01:24
	 */
	public UserCustom getUserById(Integer id) throws Exception;
	
	/**
	 * 
	 * 修改用户信息
	 * @param user
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月22日 下午10:01:49
	 */
	public void updateUser(User user) throws Exception;
	
	/**
	 * 
	 * 删除用户
	 * @param id
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月22日 下午10:02:12
	 */
	public void deleteUser(Integer id) throws  Exception;
	
	/**
	 * 
	 * 添加用户
	 * @param user
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月22日 下午10:02:23
	 */
	public void insertUser(User user) throws Exception;

	/**
	 * 
	 * 根据用户名和邮箱查询用户
	 * @param str
	 * @return User
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月22日 下午10:02:36
	 */
	public User getUserByNameOrEmail(String str) throws Exception;

	/**
	 * 
	 * 根据用户名查询用户
	 * @param name
	 * @return User
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月22日 下午10:02:54
	 */
	public User getUserByName(String name) throws Exception;

	/**
	 * 
	 * 根据邮箱查询用户
	 * @param email
	 * @return
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月22日 下午10:03:11
	 */
	public User getUserByEmail(String email) throws Exception;
}